Systems and methods for processing and transmitting test orders

ABSTRACT

In various embodiments, test trading orders are generated, transmitted and ranked.

BACKGROUND

A securities exchange includes a computer system for trading securities.Instrument is synonymous with a security. A computer system includes oneor more computers. A trading computer system includes structure and codefor receiving orders, storing orders in an order book, matching bids andoffers in the order book, executing orders in the order book, andreporting on status of orders and executions.

An order means an instruction placed with a securities exchange to buyor sell a quantity of securities under certain conditions. An orderspecifies that it is either a bid or an offer, and specifies a price, aquantity, and an identify of the market participant entity placing theorder.

A bid is an order to buy. An offer is an order to sell.

An order book means a list of orders, including bid orders and offerorders.

Matching means associating a bid having a price that equals or exceedsan offer price, with the offer.

Executing an order means updating the order book to indicate changes tothe order as a result of a matching involving the order.

Transaction means a legally binding contract that binds the partieswhose matching bid and offer were executed to tender the securities ormoney specified in their respective orders.

Done, with respect to an order, means the order was fully executed suchthat no quantity remains in the order book associated with that order.

Settlement means payment in exchange for legal title. Settlementrequires the parties who had placed bids and offers that were involvedin a transaction to tender the security or money specified by theirorders.

Typically, there is an order book for each security being traded.Computerized trading systems report on status of an order to the entityoriginating the order.

In exchanges that use clearinghouses, the trading computer system alsoreports each executed order to a clearinghouse. A clearinghouse receivesactual securities, reassigns ownership corresponding to the executedorder, and accepts the risk of non settlement for executed orders.

Certain exchanges do not use clearinghouses, and in these exchanges, thetrading entities participating in the exchange accept the risk of nonsettlement for executed orders.

Parties accepting the risk of non settlement usually have risk limitingpolicies implemented in risk limiting algorithms. These algorithms areintended to prevent that party from accepting or executing orders thatwould extend to another entity credit exceeding the amount defined bythat party's risk limit policy. A trading computer system may include arisk limiting algorithm. Variables typically used in risk limitingalgorithms include identify of the legal entity involved in thetransaction, and quantities and values for that entities orders.

Each trading computer system implements trades using its own protocolfor matching bids to offers. However, the two main matching protocolsare (1) price and time and (2) price and pro rata. In trading systemsimplementing a price and time protocol, for orders specifying the sameprice, orders placed earlier in time take priority over orders placedlater in time such that the orders placed earlier in time execute priorto the orders placed later in time. In trading systems implementing aprice and pro rata protocol, orders having the same price are partiallyexecuted at a pro rata amount against quantity of a matching order.

There exist variations on the foregoing, such as protocols implementinglast buyer and/or last seller rights. These are rights accorded to thelast buyer or last seller of an instrument to be the next in line buyeror the next seller of the same instrument for a period of time,typically on the order of seconds.

Trading computer systems may be either anonymous, or not anonymous.Anonymous means that the system provides to traders a version of theorder book that does not include identify of the legal entities placingthe orders.

A securities exchange typically charges a fee for placing orders in itstrading computer system. Information relating to the fee may beassociated with each order in each order book. Typically, there is oneorder book per security. A clearinghouse typically charges a fee forassuming the risk of non settlement. Information regarding aclearinghouse fee may be included in the report of executed transactionstransmitted from the trading computer system to the originators of theorders, and to the clearinghouse. Information transmitted to aclearinghouse in association with an execution includes the identity ofthe legal entities involved in the executed transaction.

A conventional order as described above is referred to herein below as areal order.

Traders run a variety of tools to test trading strategies. The goal ofsuch tools is to determine trading strategies that will result inmaximal profit to the trader.

BRIEF DESCRIPTIONS OF THE DRAWINGS

The figures show elements of embodiments of the inventions. The samereference number in different figures refers to identical elements orelements with similar structure or function.

FIG. 1 is a schematic of an electronic exchange network including atrading and processing computer system and various trader, investmentcompany (agent), and clearinghouse computer systems communicatingtherewith.

FIG. 2 is a schematic of a trading and processing computer system;

FIG. 3 is a schematic of a computer;

FIG. 4 is a design view schematic of a first data structure for an orderbook for one instrument in a trading and processing computer system;

FIG. 5 is a schematic of a second data structure for order books for oneinstrument in a trading and processing computer system, showing twoorder books, one for processing a test order;

FIG. 6 is a flow chart showing processing of orders for an instrument;

FIG. 7 is a flow chart showing one embodiment of order book processingof orders for an instrument, including processing of tests orders;

FIGS. 8A-C are flow charts showing alternative order book processing oforders for an instrument, including processing matching orders that areboth tests orders;

FIG. 9 is a flow chart showing processing for removal from the orderbook of unexecuted orders; and

FIG. 10 is a data signal specification specifying to a trading andprocessing computer system that an order in a data signal is a testorder or a real order, and for specifying to an originator of a testorder that a response is for a response for a test order or a realorder.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Various embodiments provide traders a means to test trading strategieson a securities exchange in which actual securities are traded, andwithout actually trading securities when testing trading strategies. Tofacilitate this in certain embodiments, this application discloses,among other things, systems and methods for placing test orders and realorders, processing the test orders and the real orders, and transmittingresults of processing the tests orders and real orders back to theentities originating the orders.

A test order means a new kind of order that does not bind the partyplacing the test order to fulfill a contract to tender the money orsecurities specified in the test order. A test order may be used to testthe state and response of a trading computer system. For all embodimentsthat involve test orders, there are corresponding embodiments achievedby using other types of orders in placed of a test order, such as any ofvarious specific types of test orders, and other orders such as an orderthat may be converted from a test order or converted to a test order.

In an embodiment, a trading and processing computer system processes atest order similarly to a real order by matching the test order withanother order and then generally executing the test order, but it doesnot generate a transaction involving the test order. In one embodiment,the trading and processing computer system does not execute a real ordermatching the test order. In another embodiment, the test order and allother orders are placed in a parallel universe, a test order book. Thetrading and processing computer system sends a test signal specifyingprocessing of the test order back to the entity originating the testorder. That test signal may include information normally contained in asignal sent as a result of submission of a real order, as well asadditional information. The normal information may include time, price,and quantity of execution. The additional information may include pricedifference, time difference, and risk differential between a real orderand the test order if the test order failed to execute.

In one aspect, an embodiment provides a computerized method and systemfor trading instruments and processing test orders comprising structurefor: receiving, in a trading and processing computer system, real ordersand test orders for an instrument; matching a test order with a realorder in said trading and processing computer system; responsive to saidmatching said test order with said real order, (1) automaticallyexecuting said test order so that said trading and processing computersystem reduces a value for a quantity of said instrument associated withsaid test order and (2) not executing said real order so that a valuefor a quantity of said instrument associated with said real orderremains unchanged.

In another aspect, an embodiment provides a computerized method andsystem for trading instruments and processing test orders comprisingstructure for: receiving, in a trading and processing computer system,real orders and test orders for an instrument; entering said real ordersfor said instrument in an electronic real order book, wherein read andwrite access to said electronic real order book is controlled by saidtrading and processing computer system, and wherein said electronic realorder book contains a bid table containing only real bid orders and anoffer table containing only real offer orders; copying said electronicreal order book to generate an electronic test order book containing abid table containing said real bid orders and an offer table containingsaid real offer orders; and entering into said electronic test orderbook a test order.

Another embodiment provides a method and computer network for processinga test order comprising structure for: generating a test order for aninstrument in a trader's computer system; transmitting said test orderfrom said trader's computer system to a trading and processing computersystem; ranking said test order in said trading and processing computersystem; entering said test order in an order book for said instrument insaid trading and processing computer system; generating a response forsaid test order indicating at least whether said test order executed;and transmitting said response for said test order from said trading andprocessing computer system to said trader's computer system.

Other embodiments provide novel data signals, including: a data signaltransmitting to a trading and processing computer system indicating thatan order is a test order, thereby instructing the trading and processingcomputer system to process said test order differently from a real ordersuch that no transaction with said test order occurs; a data signaltransmitting to a trading and processing computer system comprising aflag value, a data format, or account information, and an order, whereinsaid flag value, said data format, or said account information indicatesthat an order is a test order, thereby instructing the trading andprocessing computer system to process said test order differently from areal order such that no transaction with said test order occurs; a datasignal indicating whether a test order was matched, transmitted from atrading and processing computer system to an originator of said testorder; a data signal indicating whether a test order was executed,transmitted from a trading and processing computer system to anoriginator of said test order; and a data signal indicating that a testorder was not matched, transmitted from a trading and processingcomputer system to an originator or said test order, said data signalalso indicating either (1) at least one of price, time of execution, orcreditworthiness of a closest order in price, time of execution, orcreditworthiness or (2) difference between at least one of price, timeof execution, or creditworthiness of said closest order to said testorder.

Another embodiment provides a computer system on which is installed acomputerized trading program, said computerized trading program designedto place orders with a trading and processing computer system, includingtest orders and real orders, and capable of being switch from placingtest orders to partially or entirely placing real orders.

In various aspects, the order specifies at least one price (includingone or more ranges or sets of prices), at least one quantity (includingone or more ranges or sets of quantities), and an instrument (includingone or more instruments). The order may also specify type, such as realor test, or a connection identification or previously transmittedinformation may specify whether an order is real or test. The order mayalso specify parameters, such as limit or market.

FIG. 1 shows electronic exchange network 1 including trading andprocessing computer system 100, individual trader I1's computer system10, individual trader I2's computer system 20, individual trader I3'scomputer system 30, individual trader I4's computer system 40, agentA1's computer system 50, agent A2's computer system 60, clearinghouseC1's computer system 70, and clearinghouse C2's computer system 80.Lines connecting the aforementioned computer systems represent datapaths enabling data flow between the computer systems so connected,either wired, wireless, or via intermediate network nodes. FIG. 1 showsindividual trader's computer systems 10, 20 connecting to computersystem 100, thereby enabling computer systems 10 and 100, and 20 and 100to communicate there between, and enabling traders I1, I2 to placeorders directly with computer system 100. FIG. 1 shows individualtraders I3, I4 having computer systems 30, 40 separated from computersystem 10 via agent computer systems 50, 60. The agent computer systems50, 60, represent brokerage company computer systems, one for eachbrokerage company, with which brokerage companies individuals I3, I4,have accounts. FIG. 1 shows computer system 100 having datacommunication with clearinghouses' computer systems 70, 80. Optionally,some of all of the aforementioned computer systems may have addresses ona network such as the Internet, and be capable of transmitting to andfrom one another using the network medium. Three ellipses “ . . . ”indicate continuation of a series representing an indefinite number ofindividuals, brokerage computer systems, and clearinghouse computersystems. It should be noted that “individual trader” and similarreference to real people may also refer to a representative of anartificial legal entity, such as a corporation or institution, and thatan order may be placed either by persons manually entering data intocomputers input devices and instructing them to transmit orders or bytrading programs running on computers and performing part or all of theorder generation and transmission process.

The functional roll of the computer system 30, 40 is to place orders onthe accounts of individuals I3, I4, with the computer systems 50, 60 oftheir respective brokerage agents, and to receive responses from theiragents' computer systems indicating action on those orders. Thefunctional role of computer systems 10, 20, 50, and 60, is to placeorders on their accounts (and in the case of computer systems 50, 60, onbehalf of clients of the agents) with trading and processing computersystem 100. The functional role of clearinghouse computer systems 70, 80is to accept transaction data from trading and processing computersystem 100 and effect settlement of those transactions. The functionalrole of trading and processing computer system 100 is to accept orreject orders, manage the order book, by entering, removing, matching,executing, and transacting orders, and generating and transmittingresponses to the order originators and the clearinghouses.

FIG. 2 shows trading and processing computer system 100 including aninput/output (I/O) 210, an order/response router, and a series ofinternal computer systems 230, 240, . . . I/O 210 is structure andoptionally also code for receiving orders from computer systems 10-60,and transmitting responses to computer system 10-60. Order router 220 isstructure and optionally also code for routing orders for an instrumentto the corresponding computer system 230, 240 . . . designed to processthe order book for that instrument. Computer systems 230, 240, . . . arefunctionally identical processing systems each processing the orderbooks for different instruments. Computer system 230 processes orderbook for instrument IN1. Computer system 240 processes order book forinstrument IN2. Optionally, certain order book processing computersystems may process order books for more than one instrument.

In operation, I/O 210 receives orders for computer systems 10-60. Orderrouter 220 routes order for a particular instrument to the correspondingone of the order book processing computer systems 230, 240, . . .depending upon the instrument specified in the order. Each order bookprocessing computer system, like computer system 230, manages adding andremoving orders to the order book, matching orders, executing orders,and transacting orders, and preferably logging data, and generatingresponses.

Alternatively, each one of computer systems 230, 240 may have their ownnetwork address and receive orders transmitted to that address. In thisalternative, computer systems originating orders (computer systems10-60) specify the appropriate address of computer systems 230, 240, . .. for instruments specified in the orders.

In any case, computer system 100 preferably transmits transactioninformation to clearinghouse computer systems 70, 80, for theclearinghouses to perform clearing (settlement) of transactions.

FIG. 3 schematically illustrates core elements of computer 300,including central processing unit 310 for processing instructions,memory 320 for storing instructions and data, and I/O 330 for computer300 communicating with other devices and people. Each computer mayinclude additional components of various types, including additionalprocessors, various types of memory, such as RAM and disk memory,peripheral controllers, monitors, keyboards, pointing devices, etc. Eachcomputer employs an operating system and typically is used to runcertain applications code. Each computer system disclosed hereinincludes at least one computer, and may include a plurality of computerscommunicating with one another and operating in a cooperative fashion.

FIG. 4 shows an implementation of an order book (electronic order book)for an instrument implemented in any one of computer systems 230, 240;order book 400. Order book 400 includes bid table 410 and offer table420. Fields in each table include rank, price, quantity, User ID (UID),and type. Type herein means at least real or test. Rank is preferablyincluded in each table to avoid having to perform ranking calculationsprior to each time the corresponding computer system checks its orderbook 400 for a match. Parameters indicates the possible existence ofadditional fields, such as duration of order or alternatively good tillcancel instruction, whether the order is a “market” order, andlimitations on execution of the order. Parameters may include a fieldindicating whether an order has previously been matched. UID may be, ormay include, a specification of a network address to send responses forthat order. Alternatively, computer system 230 may store in a lookuptable network addresses to which to send responses associated withorders from each UID.

Market orders preferably have their price determined upon entry into theorder book based upon entries existing in the order book. Thus, actualmarket orders transmitted from an order placer may not have a specifiedprice, or may have a dummy price, such as zero or a negative number.

Limitations on execution of test orders may include identity of anymatching order. For example, a test order may include a field specifyingthat it not be executed only if matched to another test order, and/oronly under certain additional conditions. For example, the certainadditional conditions may be if the matching order has the same UID, aUID in a range or class, not having the same UID, or a UID not in arange or class, or a certain order identifications.

Another limitation on execution of an order is a flag value thatindicates whether an order has previously been matched. For example, inone embodiment, a test order may not execute against a real order havinga flag value indicating the real order has already been matched.Specifically, consider the situation where the quantity of a test orderexceeds the quantity of the real order. The test order is executed in anamount of the quantity of the real order, thereby reducing but noteliminating the quantity of the test order. Since the real order remainsin the order book not executed, the test order would again executeagainst the same real order, unless a mechanism exists to prevent thatsecond execution on the same order. One such prevention mechanism is aparameter value associated with real orders indicating whether a realorder was previously matched to a test order. Computer system 230 may beprogrammed to check the value of that parameter for a real order and notexecute a test order matched to that real order. Alternatively, one ormore parameter fields for the test order may store one or moreidentifications of the real orders against which the test order hasalready executed, and computer system 230 may be programmed to checkvalues of those parameter fields and not execute the test order if thecurrently matching real order has one of those real order identificationvalues. In both of the foregoing alternatives in this paragraph,computer system 230 may be programmed to compare the test order withsuccessively lower ranked potential matching orders until executions ofthe test order result in the test order's quantity reaching zero, andthe test order being removed from the order book.

In practice, computer system 230 ranks the bids and orders at least byprice, such that computer system 230 can identify and retrieve forcomparison, to see if a match exists, one or more orders having thelowest offering price and one or more bids having the highest bid price.Bids are only matched to offers, and offers are only matched to bids.

FIG. 5 shows an implementation of an order book; order book 500. Orderbook 500 includes bid table 410 and offer table 420, and also temp bidtable 510 and temp offer table 520. The temp tables 510, 520, may begenerated by computer system 230 in response to a certain conditionoccurring. For example, that condition may be when computer system 230detects a match involving any test order, or a test order meetingcertain conditions, or when a test order is received by computer system230, or when or when a test order is ranked by computer system 230.Computer system 230 generates temp tables 510, 520 by copying bid table410 and offer table 420. From that point in time, forward, computersystem 230 may process tables 410, 420 as one order book and process inparallel tables 510, 520 as one order book. Specifically, computersystem 230 may enter each subsequent in time new bid into both bidtables 410, 510, and enter each subsequent in time new offer into bothoffer tables 420, 520. Thereafter differences in subsequent matching,executing, and transacting between tables 410, 420, compared to tables510, 520, represent a perturbation caused by the existence andtransaction in the temp order book of said certain test order.

More specifically, computer system 230 may be programmed to treat thecertain test order in the order book defined by tables 510, 520 byexecuting both the test order and its matching order, either regardlessof whether the matching order is a real or a test order, oralternatively only if the matching order is real. However, computersystem 230 is programmed to not generate any transactions based uponexecutions of orders in tables 510, 520, and computer system 230 isprogramed to not generate responses for transmission to any entity otherthan the originator of the test order, in response to executions intables 510, 520. Computer system 230 may determine differences betweentables 410 and 510, and between tables 420 and 520, at one or morepoints in time after execution of the certain test order, and reportthose difference in a response to the originator of the certain testorder. Alternatively, computer system 230 may report certain log datafor matchings, executions, and transactions of both sets of tables forsome period of time to the originator of the certain test order.Computer system 230 may thereafter erase tables 510, 520, from memory.

computer system 230 may generate a pair of tables like table 510, 520for each test order, such as each time computer system 230 detects amatch involving any test order, or when a test order meeting certainconditions. The certain conditions may be data in the test orderspecifying this type of parallel processing. The certain conditions maybe a system condition, such as a system load processing load, or memoryusage below threshold values, thereby enabling this type of memory andprocessor intensive processing without substantial detrimental impact ontransaction processing.

In addition, computer system 230 may be programmed to match and executein tables 510, 520, any test order and a real order, two matched testorders, or two matched test orders only under certain conditions, oronly one of two test orders in a matched pair of test orders, dependingon certain conditions, as discussed herein below with reference to FIGS.8A-C.

FIG. 6 shows processing 600 of orders from order generation throughtransmission of response to an executed order.

In step 610, a person or a computerized trading program enters orprogrammatically generates an order for an instrument in a computersystem, such as any one of computer systems 10-60.

In step 610, a person or a computerized trading program instructs thecorresponding computer system to transmit that order to trading andprocessing computer system 100. In step 620, the corresponding computersystem transmits the order. Alternatively, the corresponding computersystem first runs a risk algorithm to determine whether placing theorder would exceed a risk threshold or credit limit associated with anidentification of a user, account, or entity associated with the order.Alternatively, computer systems 10-60 only transmits the order totrading and processing computer system 100 even if the risk threshold isexceeded. That is, in one embodiment it may transmit the order if theorder is a test order even if the risk threshold is exceeded.

A transmitted order is thereafter received by trading and processingcomputer system 100. Trading and processing computer system 100maintains various log records, such as records of transaction,purchases, and sales, and associated identifications of users, accounts,and entity. This log information may be used by computer system 100amongst other things to perform a risk determination.

In step 630, trading and processing computer system 100 preferably runsa risk algorithm on the order and generates a risk value and determinesif that value exceeds risk threshold. If the risk threshold is exceeded,computer system 100 implements step 640 of rejecting the order by notentering it into the order book for the corresponding instrument. Instep 650, computer system 100 sends a response to the originator of theorder indicating that the order was rejected. If the risk value does notexceed a risk threshold, processing proceeds in one of computer systems230, 240, etc, (hereinafter computer system 230) for entry into theorder book for the corresponding instrument.

In one alternative, test orders that, if real, would exceed a riskthreshold, are not rejected. In this alternative, computer system 230either bypasses risk analysis step 630, or continues after step 630, orstep 640 to step 660 with the test order. This allows traders toimplement test orders that otherwise would exceed their credit limit.

In another alternative, a person or a computerized trading programspecifies to computer system 230 or computer system 100 a test creditlimit, which is a credit limit other than a real credit limit. Thepurpose of setting a test credit limit may be to determine overallreturn on investment performance when taking into account the cost ofcredit, such as cost of a performance bond.

In another alternative, agent A1, A2, have their computer systems 50, 60assess credit of orders placed by individuals I3, I4, and individualsI3, I4, may impose a test credit limit on the risk algorithmsimplemented by computer systems 50, 60. Then, computer systems 50, 60act on test orders placed by people or trading programs running oncomputer systems 50, 60, using the test credit limit to determinewhether to accept or reject those test orders.

Steps similar to 630-650 may also be implemented by agent computersystems A1, A2, for orders requested by individuals I3, I4, etc.

Risk data may be associated with the order when it is subsequentlyentered in the order book, or parameters indicating entities notaccepting or accepting that level of risk from that originator may beassociated with the order when it is subsequently entered in the orderbook. In exchanges that do not implement clearinghouses, the risk datamay be passed to the originator of a matching order so that thatoriginator can determine whether to accept the risk of non settlement,and therefore determine whether to accept the order.

In step 660, computer system 230 ranks the order.

In step 670, computer system 230 enters the order in the order book.

In step 680, computer system 230 processes the order book by matching,executing, transacting and preferably logging, as described elsewhere inthis application. Preferably, if the order book is updated as a resultof computer system 230 identifying a match, processing proceeds alongpath 680A by repeating step 680 of determining if another match exists.If computer system 230 identifies no match, preferably precessingproceeds along 680B to 660 by entering another ranked order into theorder book. Alternatively, processing from 680 may proceed to step 690instead of 680A or 680B.

In step 690, computer system 230 generates and transmits responses tothe address associated with the UID associated with the order. Theresponses typically indicate whether the order was executed andtransacted, and may also indicate other information as discussedelsewhere herein. Processing may proceed from 690 along paths 690A or690B back to steps 680 or 660.

If processing does not proceed from 680 to 690, the step 680 preferablyincludes logging of execution and transaction data such that a separateprocessing unit can perform step 690. Not shown herein is the generationand transmission of transaction data to clearinghouse computer systems.However, this may occur concurrently with transmission of responses toorder originators on transacted orders, periodically, or aperiodically,and be based upon logs of transactions generated by computer system 230resulting from processing of orders in the order book.

FIG. 7 shows processing 680 of an order book, including steps 660 and710-810. These steps include determinations whether orders match,whether matching orders are test or real orders, and under whatconditions to execute and transact matching orders.

In step 710, computer system 230 determines whether orders A and Bmatch. Orders A and B are the highest ranked bid and offer orders in theorder book. A is an order having the highest bid price and B is an offerhaving the lowest offer price. If no match exists, processing returns tostep 660 to rank and enter into the order book the next new order. If amatch exists, processing proceeds to step 720.

This paragraph discusses the steps along the right column of steps inFIG. 7, for matching real orders. In step 720, computer system 230determines whether A is a test order. If not, computer system 230executes step 730. In step 730, computer system 230 determines whether Bis a test order. If no, then computer system 230 executes step 740. Instep 740 computer system 230 has determined that both A and B are realorders. Computer system 230 thereafter executes and transacts thoseorders, sends responses to the UIDs associated with each order, andsends transaction information to the clearinghouse handling clearing forthe corresponding instrument, and then checks for another match or neworders (steps 740-760 followed by step 710).

This paragraph discusses the steps along the left column of steps inFIG. 7, for matching test orders. In step 720, computer system 230determines whether A is a test order. If yes, computer system 230executes step 770. In step 770, computer system 230 determines whether Bis a test order. If yes, computer system 230 has determined that thematching orders are both test orders, and proceeds to step 810 shown inFIGS. 8A-C.

This paragraph discusses the steps along the middle column of steps inFIG. 7. This processing occurs when computer system 230 has determinedthat one of the matched orders is a test order and the other of thematched orders is a real order. In step 780, computer system 230executes the test order, and does not execute the real order, andperforms no transaction, and proceeds to step 790. In step 790, computersystem 230 generates and sends a test order response to the addressassociated with the UID of the originator of the test order. Afterexecuting step 790, computer system 230 returns to step 710 to determineif another match exists in the order book. It should be noted thatcomputer system 230/100 performs a transaction by sending responses tothe originators (UIDs) of the orders transacted noting the transactionin addition to updating the order book, and in exchanges employingclearinghouses, sends responses containing the details of thetransaction to a clearinghouse handling clearing transactions for thatinstrument.

FIGS. 8A-C show alternatives for processing matching test ordersincluding respectively executing both, executing none, and conditionallyexecuting one or both test orders. In FIGS. 8A-C, in step 810, computersystem 230 has determined that both A and B are test orders.

In FIG. 8A, in step 820, computer system 230 executes both A and B. Instep 830, computer system 230 generates and transmits responsesresulting from the executions.

In FIG. 8B, computer system 230 returns processing to either 710 or 660(checking for another order match or entering another order into theorder book) in response to determining that both orders are test orders.

In FIG. 8C, in step 840, computer system 230 reviews execution criteriaassociated with order A and determines whether order A meets theexecution criteria. If no, it returns processing to either 710 or 660.If yes, computer system 230 executes order A. Similar steps may beimplemented by computer system 230 on order B. The execution criteriamay be specified in the order, and may include criteria based upon theoriginator (person, entity, or account code) of the order. For example,the order may include code specifying UIDs of the matching B order forwhich order A will be executed, or may include code specifying UIDs ofthe matching B order for which order A will not be executed. Theexecution criteria may also be based upon any other value of any fieldassociated with the order, or with the matching order, such as price,quantity, market, limit, etc.

FIG. 9 shows a process 900 for removing unexecuted orders from an orderbook. Unexecuted orders may be removed based upon a cancel order tocancel an order in the order book. Cancel orders are typicallytransmitted by the originator of the order in the order book. Orders mayalso be removed from the order book as a result of expiration timesspecified in the order. Although not shown, computer system 230preferably executes an order removal step either periodically or beforeor after steps 710, 660. In multi processor environments implementingthe order book in data structures implementing record level locking, aseparate process may implement removal of orders concurrent with theorder book processing shown in FIGS. 7 and 8.

In step 910, computer system 230 checks for an instruction to removeorder X. If yes, computer system 230 determines if order X is a testorder.

In step 920, if X is not a test order, computer system 230 generates andtransmits a conventional order cancellation response to the originatorof order X. In step 930, if X is a test order, computer system 230preferably determines one or more of delta T, delta P, and delta R.Delta T, delta P, and delta R respectively are the closest in time realorder in the order book that could have matched the test order, oversome defined time interval prior to when the test order was in the orderbook, the closest in price order to the test order during the presenceof the test order in the order book, and the difference in risk of anyorder having the same price as the test order during the presence of thetest order in the order book and that executed in lieu of the testorder. Computer system 230 preferably preforms these determinations byanalyzing data in logs it generated for changes to the order book. Instep 950, computer system 230 generates and transmits to the originatorof the test order a response notifying the originator of cancellation ofthe order, and preferably also including any delta T, delta P, and deltaR data.

FIG. 10 shows a message format 1000 for transmitting messages containingorders, similar to the format specified in the New York Stock ExchangeCommon access point specification, revision 1.3. It differs from thatspecification by allocating to a reserved portion of the message stream,data indicating whether an order contained in the data stream is real ortest. FIG. 10 includes message format 1010 including header portion andmessage portion. The header portion includes length, flags, andapplication data. Length is a 16 bit binary specifying total messagelength, and having left to right ordering. Flags is a 16 bit binary inwhich the value zero indicates a real order, and the value 1 indicates atest order. Application data is variable length constrained to have aneven number of bytes. The message portion of the data stream, notspecified here, contains in conventional format data specifying theorder parameters, but may be modified to enable test orders to specifyadditional criteria, such as execution criteria when matching a testorder. Obviously, this specification is only one of many obviousembodiments of how to incorporate data into an order to specify that itis a test order or a real order.

In one preferred embodiment, a computerized trading program for placingorders and receiving responses from trading and processing computersystem 100, may be manually or programmatically switched from test modein which it places test orders, to real mode in which it places realorders. It may be programmatically switched to real mode in response toany market event. It may be programmatically switched to real mode inresponse to exceeding one or more trading criteria, such as a fractionalor absolute increase in test portfolio value, a rate of increase withtime in test portfolio value, a ratio of executed to total test orders,a ratio of test orders not exceeding a risk limit to total test orders,etc. In one alternative, the computerized trading program, when switchedfrom test mode to live mode, may also generate real orders identical tosome or all of the pending test orders. In addition, the computerizedtrading program for placing orders and receiving responses from tradingand processing computer system 100, may be only partially manually orprogrammatically switched from test mode in which it places test orders,to real mode in which it places real orders. Partially switching to realorders may be a switch for only one or more specified instruments.Partially switching may be limited to placing real orders not exceedinga dollar or value limit, such as a value defined by a risk threshold.Partially switching may define a fraction of a test order quantity, andthat fraction may be truncated to so that the real order quantity is thenext lowest integer amount of one, tens, or hundreds, or rounded up tothe next closest one, tens or hundreds. Partially switching may alsodefine placing a defined number of orders as real orders, such as thenext 1, 5 or 10 orders. Partially switching may also define placing onlyduring a period of time real orders, such as all placing real ordersduring a 10, 60, or 3600 hour time period, and then not placing realorders in a subsequent time period. Partially switching may also definealternating between test and real orders, either by sequence, such asevery other order, every third, or every tenth order be a real order andthe remaining be test orders, or every order during alternate setintervals of time be real orders, such as all orders during alternateseconds, tens or hundreds of seconds be real orders, and the remainingbe test orders. Partially switching may also include a ramping upfeature, in which the quantity or fraction of real orders compared totest orders per time interval increases with time, either by increasinga quantity associated with real orders or increasing fractions of timeduring which orders placed are real instead of test. Partially switchingmay also define placing orders that do not exceed a risk limit as realorders, and placing all remaining orders as test orders.

Additional aspects of a novel trading system are disclosed below.

Additional Information that Cs 230 May Provide

A response provided by computer system 230 to the originator of either atest order, a real order, or an order only for information, may includedata indicating the number of orders, duration of each order, orquantity of instruments in orders, of higher rank and lower rank thanthe originator's order, at any time, when the order is cancelled, andwhen the order is executed. The response provided by computer system 230to the originator of a real or test order may include data indicatingthe number of transactions, prices of transactions, during the time theoriginator's order was pending, periodically, and in response tomatching, execution, or transaction of the originator's order.

If data exists in the orders, response to an originator's order (testorder, a real order, or an order only for information) may also specifywhich of the orders in the order book originated from programmed tradingsystems and which from people manually entering orders into computersystems and then instructing the computer systems to transmit them tocomputer system 100. The responses noted in this paragraph do notrequire the existence of a real or test order. That is, an originatormay place an information order via one of computer systems 10-60 withtrading and processing computer system 100 to provide this information,without placing a bid or offer order.

Another data provided in a response from computer system 100 may includeone or more message rates, such as the rate of all incoming orders, orall bids or all offers, to computer system 100, to computer system 230,the rate of all executions or transactions in computer system 230, therate of executions or transactions in computer system 230 for a specificinstrument, or in computer system 100 for all or a specific instrument.Rate may be determined from system data specifying instantaneous rate,or based upon log data averaged over a period of time, such as 10, 50,100, milliseconds, a second, a minute or an hour.

A response provided by computer system 230 to the originator of either atest order or a real order may include positional information relativeto the originator's order. This information includes how many orders arein the same bid or offer queue or table; how many of higher rank and howmany of lower rank; quantity of shares in the offers in the queue ofhigher and lower rank than the originator's offer, age of each suchorder relative to the age of the originator's order, and all of thatinformation at one or more times during the presence of the originator'sorder in the order book. The positional information may include timinginformation. Specifically, the duration of time prior to which an orderwas placed that it would have had to have been placed in order toexecute, and the during of time prior to which an order was attempted tobe canceled that it would have had to have been canceled in order to nothave executed.

For orders that are updated, that is changed after entry in the orderbook, both the original order time, and the update time may be includedin responses, if that data is available to computer system 230.

Any message transmitted from computer system 100 to an order originatormay also specify the amount of credit that the originator (or theoriginator's account) has with computer system 100, and value at risk.

Preferably, computer system 100 includes, in a response to an order thatdid not execute or trade, information relating to why the order did notexecute or trade. This information includes the highest ranking of theorder while the order was pending, the minimum price difference betweenthe order and any potentially matching orders during the pendency of theorder, and the amount of time prior to when the order was actuallyplaced, that it would have had to have been placed, in order to execute,or to have a price that could match some other order's price.Preferably, computer system 100 also includes, in a response to an orderthat executed, the time at which a request to cancel the order wouldhave had to have been placed in order to have prevented the order fromexecuting. For orders for which a request to cancel was placed,preferably computer system 100 provides in a response the difference intime between when the request to cancel was placed and would have needto be placed to avoid execution of the order. Computer system 100 canderive this information by appropriate queries directed to the data inthe order book or to log data storing information about orders removedfrom the order book, including time of matching, execution, and/orremoval from the order book, and quantity and price. Computer system 100may also incorporate estimates of time from when an order is placed by atrader to when the order is received by computer system 100, computersystem 230, and entered into an order book. This data may vary fromtrader to trader, depending upon network configuration. Network packetsmay store time of order origination, and this data, compared to time ofreceipt provided by a clock in computer system 100, 230, may be used togenerated transmission time estimates, or may be used as an actualtransmission time for a particular order.

The test orders disclosed herein may be used in a computerized tradingprogram, typically implementing application programming interfaces(APIs) for trading and processing computer system 100 in order to placeorders and receive responses from computer system 100.

Trading and processing computer system 100 may allocate resources andcharge for use of test trades in a variety of ways. It may prioritizeuse amongst various users, prioritize based upon system resources,implement pay per execution, pay per period of use, or make the testorder services free. It may also accept bids for exclusivity of use oftest orders for specified instruments or for period of time.

Uses Of Test Orders with Various Types of Real Orders

Max Display Orders—A max display order is an order that specifies aquantity to be shown to the market participants, but that also specifiesan additional quantity stored in computer system 100 and not shown bycomputer system 100 to market participants. The additional quantityremains “hidden” in the order book, but it may be matched against otherreal orders or other max display orders.

A test order could be used to “probe” the marketplace to determine ifthere was additional quantity associated with a matching order, that isif the matching order were a max display order.

Double secret video—Refers to procedure that allows a market participanthaving the bid at the best price to offer to the best offerer a trade atan improved bid price, a price closer to the best offerer's price. Theoffer at the improved price is referred to as a double secret videooffer. The best offerer can accept or decline the double secret videooffer. If the offerer accepts, then the bidder and offerer trade at theagreed upon improved price. The existence of the improved bid, and/or atrade resulted from acceptance of the improved bid by the best offerer,may not be made available to other bidders and offerers (other marketparticipants) by trading and processing computer system 100.

The existence of a double secret video offer may be embedded in anorder. Computer system 100 may respond to a real order that includes adouble secret video offer to which a test order is the best offerer bytransmitting to the originator of the test offer the double secret videooffer. Alternatively to the existence of the double secret video offerbeing embedded in an offer, computer system 100 may accept from a traderwhose bid is at the best price a double secret video offer, and presentthat offer to the best offerer, even if the best offerer's offer is atest offer order. This alternative requires the bidder with the bid atthe best price to know his bid is at the best price; computer system 100may send the bidder such a notification. In either alternative, a testoffer may provides the test offerer knowledge of the double secret videooffer.

Additionally, a test order may include a double secret video offer. Thedouble secret video offer in the test order may be a real offer or atest offer. Alternatively, the originator of a test offer that is at thebest price may be granted by computer system 100 the right to originatea double secret video offer, real or test.

Cloaked Orders—Some orders may include data specifying to computersystem 100 that they not be made publicly available to marketparticipants, even though they reside in the order book. These ordersare called cloaked orders. Test orders may be used to identify theexistence of cloaked orders. For example, by noting prices at which thetest orders execute, the orders against which test orders execute, andoptionally other data provided by trading and processing computer system100 such as order book log data.

Repeated test orders may be used to identify patterns to the placing ofcloaked orders, max display orders, and double secret video orders.

Locking preferences and locked markets—Users may set a preference intheir order called a locking preference. The locking preference providesfor an order to not match, execute, or trade with a corresponding orderhaving the same price (one being a bid and the other being an offer).Instead, an offer having a locking preference set will only trade with acorresponding bid order at a price a predetermined amount lower than theoffer price. Likewise, a bid offer that has a locking preference setwill only trade with an offer having a price at a predetermined amountabove the price of the offer order. The predetermined amount maycorrespond to a commission charged by the exchange to implement a trade,in which case setting the locking preference indicates that the traderis not willing to pay the exchange's commission. A locked market is onein which the spread is zero, and the best bid is at the same price asthe best offer. This occurs if one or both of the best orders has alocking preference set. A crossed market is one in which the best offerhas a price below the best bid, which occurs when an order having alocking preference set is about to trades with another order. Locked andcrossed markets may exist in exchanges that implement lockingpreferences.

A first user may wish to lock such a market by having their order'slocking preference set and then wait for a second user that is willingto pay the market price plus the additional predetermined amount, suchas a commission cost, above the locked market's price (crossed market).A user less sensitive to commission costs may wish to trade in a locked;not have their locking preference set. In addition, computer system 100may respond to orders in a locked market that are within thepredetermined amount of the market price, either by querying parametersset in the order, or by querying the originator of the order, whether tounlock their order in response to a locked market (and thereby pay thecommission charge). Locking preferences of orders may not, and typicallyare not, provided by exchanges to the market participants.

Test order may be used to probe the locking preferences of the orders atthe best bid and offer prices. That is, a test order that would matchanother order, but for a locking preference set in the other order, willnot execute. Hence, indicating that the other order has a lockingpreference set. Test orders at a some higher price will execute, thatis, when the spread between the test order price and other order's priceexceeds the predetermined amount defined by a locking preference of theother order. Thus, test orders may be used to determine the existenceof, and the currency amount of another order's locking preference.

In addition, if computer system 100 is so programmed, matching of a testorder that is locked to a locked order may provide to the originator ofthe test order information whether the locked order will unlock uponmatching in price to another locked order.

Evaluating Trading Strategies and Alternative Implementations

Test orders disclosed herein may be used effectively in a variety ofways to test the response of a market in order to evaluate theeffectiveness in trading strategies in generating profit.

One use is to evaluate a modification of an existing trading strategy.Suppose a trader has automated trading strategy A and has incorporatedchanges, generating strategy B. The trader may desire to continue to runstrategy A if it is profitable. The trader would also like to evaluatethe profitability of strategy B to determine if it would be profitableto switch from A to B. In this situation, the trader would want strategyB to submit test orders that would match against all real order exceptthose orders from the traders strategy A. There are many permutations ofthis type of trading testing and execution selectivity, a couple ofwhich are described below.

Suppose a trader runs trading strategies A and B. The trader would liketo evaluate adding strategy C, which means concurrently running allthree strategies to place orders and generate trades. In this case thetest orders submitted by C should match against any real order. However,in this case, if orders generated by strategy C trade with A or B, itmight be the case that the trader wishes executions (though notsettlement) to be sent to in response to trades between C and A, and Cand B, as the trader wants trading strategies A and B to function as iftrades generated by orders originating from trading strategy C werereal, so that the trader can evaluate the impact of implementingstrategy C with real orders on orders generated by strategies A and B.In this case, there is a meaningful reason for real order to get anexecution from a match with a test order. Thus, in this alternativespecified real orders (orders generated by strategies A, B) will executewhen matched to specified test orders (orders generated by strategy C).

Alternatively, a trader implementing strategies A and B might wish totest modifications of both strategies, C and D. That is, for examplewhen contemplate replacing A and B with C and D. In this case, testorders from C and D should match with each other, since if implementedrunning real orders, C and D would in fact match with each other.However, test orders from C and D should not match or execute with anyother test orders. Also, test orders from C and D should not match andshould not execute with real orders from A and B, since, if C and D wereimplemented with real orders and replaced A and B, orders from A and Bwould not exist.

Straight Through Processing Testing Concept

In an alternative concept, the exchange may be configured to use certainalternative test orders, referred to herein as straight throughprocessing test orders, to test reliability of all components of anexchange trading system, from order entry to clearing. The goal of suchtesting using straight through processing test orders is to ensure thatthe exchange in its entirety functions reliably to implement trading.For example, when hardware or software of any portion of network 1changes, there is the possibility that such changes may result in dataerrors and incorrect programming resulting in inaccurate informationbeing stored regarding trading. This possibility may be minimized bytesting trading using straight through processing test orders upon anychange of any network component to identify problems before they resultin erroneous trade data. In this alternative, software in the computersystems 10-80 include code or structure for recognizing orders that arestraight through processing test orders and processing the straightthrough processing test orders exactly the same as any real orders, withthe exception of actual settlement (exchange of legal title). In thisconcept, computer system 100 receives straight through processing testorders and generates responses indicating whether the straight throughprocessing test orders executed, transacted, cleared, and would havesettled correctly. Network 1 passes information with or as part oforders indicating orders that are straight through processing testorders from the order originators through the computer system 100 andthrough the clearinghouse computer systems 70, 80. Computer systems 70,80. However, the clearinghouses do not reassign actual legal title toinstruments identified in transactions involving straight throughprocessing test orders. In one embodiment, each relevant data structurefor orders, starting with the order originator, and including computersystem 100 and clearinghouse computer systems 70, 80, includes a fieldin a data structure for storing orders, indicating whether each order isa straight through processing test order. Each element of network 1 isprogrammed to process transactions including a straight throughprocessing test orders preferably through clearing.

Preferably, computer system 100 is programmed to only match straightthrough processing test orders against other straight through processingtest orders. Alternatively, computer system 100 may be programmed toexecute straight through processing test orders against either or bothof straight through processing test orders and real orders. Preferably,clearinghouse computer systems 70, 80 perform processing identical towhen they clear real orders, including generation of a response to theorder originators, except that the response notes the orders arestraight through processing test orders, not real orders, and exceptthat computer systems 70, 80 do not perform processing changing legaltitle for what would be transactions if involving real orders, wheninvolving straight through processing test orders. Thus, computersystems 70, 80, run code determining whether an order is a straightthrough processing test order, and differ in processing depending uponthat determination.

The following sections I-X provide a guide to interpreting the presentapplication.

I. Terms

The term “product” means any machine, manufacture and/or composition ofmatter, unless expressly specified otherwise.

The term “process” means any process, algorithm, method or the like,unless expressly specified otherwise.

Each process (whether called a method, algorithm or otherwise)inherently includes one or more steps, and therefore all references to a“step” or “steps” of a process have an inherent antecedent basis in themere recitation of the term ‘process’ or a like term. Accordingly, anyreference in a claim to a ‘step’ or ‘steps’ of a process has sufficientantecedent basis.

The term “invention” and the like mean “the one or more inventionsdisclosed in this application”, unless expressly specified otherwise.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, “certain embodiments”, “one embodiment”, “anotherembodiment” and the like mean “one or more (but not all) embodiments ofthe disclosed invention(s)”, unless expressly specified otherwise.

The term “variation” of an invention means an embodiment of theinvention, unless expressly specified otherwise.

A reference to “another embodiment” in describing an embodiment does notimply that the referenced embodiment is mutually exclusive with anotherembodiment (e.g., an embodiment described before the referencedembodiment), unless expressly specified otherwise.

The terms “including”, “comprising” and variations thereof mean“including but not limited to”, unless expressly specified otherwise.

The terms “a”, “an” and “the” mean “one or more”, unless expresslyspecified otherwise.

The term “plurality” means “two or more”, unless expressly specifiedotherwise.

The term “herein” means “in the present application, including anythingwhich may be incorporated by reference”, unless expressly specifiedotherwise.

The phrase “at least one of”, when such phrase modifies a plurality ofthings (such as an enumerated list of things) means any combination ofone or more of those things, unless expressly specified otherwise. Forexample, the phrase “at least one of a widget, a car and a wheel” meanseither (i) a widget, (ii) a car, (iii) a wheel, (iv) a widget and a car,(v) a widget and a wheel, (vi) a car and a wheel, or (vii) a widget, acar and a wheel. The phrase “at least one of”, when such phrase modifiesa plurality of things does not mean “one of each of” the plurality ofthings.

Numerical terms such as “one”, “two”, etc. when used as cardinal numbersto indicate quantity of something (e.g., one widget, two widgets), meanthe quantity indicated by that numerical term, but do not mean at leastthe quantity indicated by that numerical term. For example, the phrase“one widget” does not mean “at least one widget”, and therefore thephrase “one widget” does not cover, e.g., two widgets.

The phrase “based on” does not mean “based only on”, unless expresslyspecified otherwise. In other words, the phrase “based on” describesboth “based only on” and “based at least on”. The phrase “based at leaston” is equivalent to the phrase “based at least in part on”.

The term “represent” and like terms are not exclusive, unless expresslyspecified otherwise. For example, the term “represents” do not mean“represents only”, unless expressly specified otherwise. In other words,the phrase “the data represents a credit card number” describes both“the data represents only a credit card number” and “the data representsa credit card number and the data also represents something else”.

The term “whereby” is used herein only to precede a clause or other setof words that express only the intended result, objective or consequenceof something that is previously and explicitly recited. Thus, when theterm “whereby” is used in a claim, the clause or other words that theterm “whereby” modifies do not establish specific further limitations ofthe claim or otherwise restricts the meaning or scope of the claim.

The term “e.g.” and like terms mean “for example”, and thus does notlimit the term or phrase it explains. For example, in the sentence “thecomputer sends data (e.g., instructions, a data structure) over theInternet”, the term “e.g.” explains that “instructions” are an exampleof “data” that the computer may send over the Internet, and alsoexplains that “a data structure” is an example of “data” that thecomputer may send over the Internet. However, both “instructions” and “adata structure” are merely examples of “data”, and other things besides“instructions” and “a data structure” can be “data”.

The term “respective” and like terms mean “taken individually”. Thus iftwo or more things have “respective” characteristics, then each suchthing has its own characteristic, and these characteristics can bedifferent from each other but need not be. For example, the phrase “eachof two machines has a respective function” means that the first suchmachine has a function and the second such machine has a function aswell. The function of the first machine may or may not be the same asthe function of the second machine

The term “i.e.” and like terms mean “that is”, and thus limits the termor phrase it explains. For example, in the sentence “the computer sendsdata (i.e., instructions) over the Internet”, the term “i.e.” explainsthat “instructions” are the “data” that the computer sends over theInternet.

Any given numerical range shall include whole and fractions of numberswithin the range. For example, the range “1 to 10” shall be interpretedto specifically include whole numbers between 1 and 10 (e.g., 1, 2, 3,4, . . . 9) and non-whole numbers (e.g. 1.1, 1.2, . . . 1.9).

Where two or more terms or phrases are synonymous (e.g., because of anexplicit statement that the terms or phrases are synonymous), instancesof one such term/phrase does not mean instances of another suchterm/phrase must have a different meaning For example, where a statementrenders the meaning of “including” to be synonymous with “including butnot limited to”, the mere usage of the phrase “including but not limitedto” does not mean that the term “including” means something other than“including but not limited to”.

II. Determining

The term “determining” and grammatical variants thereof (e.g., todetermine a price, determining a value, determine an object which meetsa certain criterion) is used in an extremely broad sense. The term“determining” encompasses a wide variety of actions and therefore“determining” can include calculating, computing, processing, deriving,investigating, looking up (e.g., looking up in a table, a database oranother data structure), ascertaining and the like. Also, “determining”can include receiving (e.g., receiving information), accessing (e.g.,accessing data in a memory) and the like. Also, “determining” caninclude resolving, selecting, choosing, establishing, and the like.

The term “determining” does not imply certainty or absolute precision,and therefore “determining” can include estimating, extrapolating,predicting, guessing and the like.

The term “determining” does not imply that mathematical processing mustbe performed, and does not imply that numerical methods must be used,and does not imply that an algorithm or process is used.

The term “determining” does not imply that any particular device must beused. For example, a computer need not necessarily perform thedetermining

III. Forms of Sentences

Where a limitation of a first claim would cover one of a feature as wellas more than one of a feature (e.g., a limitation such as “at least onewidget” covers one widget as well as more than one widget), and where ina second claim that depends on the first claim, the second claim uses adefinite article “the” to refer to the limitation (e.g., “the widget”),this does not imply that the first claim covers only one of the feature,and this does not imply that the second claim covers only one of thefeature (e.g., “the widget” can cover both one widget and more than onewidget).

When an ordinal number (such as “first”, “second”, “third” and so on) isused as an adjective before a term, that ordinal number is used (unlessexpressly specified otherwise) merely to indicate a particular feature,such as to distinguish that particular feature from another feature thatis described by the same term or by a similar term. For example, a“first widget” may be so named merely to distinguish it from, e.g., a“second widget”. Thus, the mere usage of the ordinal numbers “first” and“second” before the term “widget” does not indicate any otherrelationship between the two widgets, and likewise does not indicate anyother characteristics of either or both widgets. For example, the mereusage of the ordinal numbers “first” and “second” before the term“widget” (1) does not indicate that either widget comes before or afterany other in order or location; (2) does not indicate that either widgetoccurs or acts before or after any other in time; and (3) does notindicate that either widget ranks above or below any other, as inimportance or quality. In addition, the mere usage of ordinal numbersdoes not define a numerical limit to the features identified with theordinal numbers. For example, the mere usage of the ordinal numbers“first” and “second” before the term “widget” does not indicate thatthere must be no more than two widgets.

When a single device, article or other product is described herein, morethan one device/article (whether or not they cooperate) mayalternatively be used in place of the single device/article that isdescribed. Accordingly, the functionality that is described as beingpossessed by a device may alternatively be possessed by more than onedevice/article (whether or not they cooperate).

Similarly, where more than one device, article or other product isdescribed herein (whether or not they cooperate), a singledevice/article may alternatively be used in place of the more than onedevice or article that is described. For example, a plurality ofcomputer-based devices may be substituted with a single computer-baseddevice. Accordingly, the various functionality that is described asbeing possessed by more than one device or article may alternatively bepossessed by a single device/article.

The functionality and/or the features of a single device that isdescribed may be alternatively embodied by one or more other deviceswhich are described but are not explicitly described as having suchfunctionality/features. Thus, other embodiments need not include thedescribed device itself, but rather can include the one or more otherdevices which would, in those other embodiments, have suchfunctionality/features.

IV. Disclosed Examples and Terminology Are Not Limiting

Neither the Title (set forth at the beginning of the first page of thepresent application) nor the Abstract (set forth at the end of thepresent application) is to be taken as limiting in any way as the scopeof the disclosed invention(s). An Abstract has been included in thisapplication merely because an Abstract of not more than 150 words isrequired under 37 C.F.R. §1.72(b).

The title of the present application and headings of sections providedin the present application are for convenience only, and are not to betaken as limiting the disclosure in any way.

Numerous embodiments are described in the present application, and arepresented for illustrative purposes only. The described embodiments arenot, and are not intended to be, limiting in any sense. The presentlydisclosed invention(s) are widely applicable to numerous embodiments, asis readily apparent from the disclosure. One of ordinary skill in theart will recognize that the disclosed invention(s) may be practiced withvarious modifications and alterations, such as structural, logical,software, and electrical modifications. Although particular features ofthe disclosed invention(s) may be described with reference to one ormore particular embodiments and/or drawings, it should be understoodthat such features are not limited to usage in the one or moreparticular embodiments or drawings with reference to which they aredescribed, unless expressly specified otherwise.

No embodiment of method steps or product elements described in thepresent application constitutes the invention claimed herein, or isessential to the invention claimed herein, or is coextensive with theinvention claimed herein, except where it is either expressly stated tobe so in this specification or expressly recited in a claim.

All words in every claim have the broadest scope of meaning they wouldhave been given by a person of ordinary skill in the art as of thepriority date. No term used in any claim is specially defined or limitedby this application except where expressly so stated either in thisspecification or in a claim.

The preambles of the claims that follow recite purposes, benefits andpossible uses of the claimed invention only and do not limit the claimedinvention.

The present disclosure is not a literal description of all embodimentsof the invention(s). Also, the present disclosure is not a listing offeatures of the invention(s) which must be present in all embodiments.

Devices that are described as in communication with each other need notbe in continuous communication with each other, unless expresslyspecified otherwise. On the contrary, such devices need only transmit toeach other as necessary or desirable, and may actually refrain fromexchanging data most of the time. For example, a machine incommunication with another machine via the Internet may not transmitdata to the other machine for long period of time (e.g. weeks at atime). In addition, devices that are in communication with each othermay communicate directly or indirectly through one or moreintermediaries.

A description of an embodiment with several components or features doesnot imply that all or even any of such components/features are required.On the contrary, a variety of optional components are described toillustrate the wide variety of possible embodiments of the presentinvention(s). Unless otherwise specified explicitly, nocomponent/feature is essential or required.

Although process steps, algorithms or the like may be described orclaimed in a particular sequential order, such processes may beconfigured to work in different orders. In other words, any sequence ororder of steps that may be explicitly described or claimed does notnecessarily indicate a requirement that the steps be performed in thatorder. The steps of processes described herein may be performed in anyorder possible. Further, some steps may be performed simultaneouslydespite being described or implied as occurring non-simultaneously(e.g., because one step is described after the other step). Moreover,the illustration of a process by its depiction in a drawing does notimply that the illustrated process is exclusive of other variations andmodifications thereto, does not imply that the illustrated process orany of its steps are necessary to the invention(s), and does not implythat the illustrated process is preferred.

Although a process may be described as including a plurality of steps,that does not imply that all or any of the steps are preferred,essential or required. Various other embodiments within the scope of thedescribed invention(s) include other processes that omit some or all ofthe described steps. Unless otherwise specified explicitly, no step isessential or required.

Although a process may be described singly or without reference to otherproducts or methods, in an embodiment the process may interact withother products or methods. For example, such interaction may includelinking one business model to another business model. Such interactionmay be provided to enhance the flexibility or desirability of theprocess.

Although a product may be described as including a plurality ofcomponents, aspects, qualities, characteristics and/or features, thatdoes not indicate that any or all of the plurality are preferred,essential or required. Various other embodiments within the scope of thedescribed invention(s) include other products that omit some or all ofthe described plurality.

An enumerated list of items (which may or may not be numbered) does notimply that any or all of the items are mutually exclusive, unlessexpressly specified otherwise. Likewise, an enumerated list of items(which may or may not be numbered) does not imply that any or all of theitems are comprehensive of any category, unless expressly specifiedotherwise. For example, the enumerated list “a computer, a laptop, aPDA” does not imply that any or all of the three items of that list aremutually exclusive and does not imply that any or all of the three itemsof that list are comprehensive of any category.

An enumerated list of items (which may or may not be numbered) does notimply that any or all of the items are equivalent to each other orreadily substituted for each other.

All embodiments are illustrative, and do not imply that the invention orany embodiments were made or performed, as the case may be.

V. Computing

It will be readily apparent to one of ordinary skill in the art that thevarious processes described herein may be implemented by, e.g.,appropriately programmed general purpose computers, special purposecomputers and computing devices. Typically a processor (e.g., one ormore microprocessors, one or more microcontrollers, one or more digitalsignal processors) will receive instructions (e.g., from a memory orlike device), and execute those instructions, thereby performing one ormore processes defined by those instructions. Instructions may beembodied in, e.g., one or more computer programs, one or more scripts.

A “processor” means one or more microprocessors, central processingunits (CPUs), computing devices, microcontrollers, digital signalprocessors, or like devices or any combination thereof, regardless ofthe architecture (e.g., chip-level multiprocessing/multi-core, RISC,CISC, Microprocessor without Interlocked Pipeline Stages, pipeliningconfiguration, simultaneous multithreading).

Thus a description of a process is likewise a description of anapparatus for performing the process. The apparatus that performs theprocess can include, e.g., a processor and those input devices andoutput devices that are appropriate to perform the process.

Further, programs that implement such methods (as well as other types ofdata) may be stored and transmitted using a variety of media (e.g.,computer readable media) in a number of manners. In some embodiments,hard-wired circuitry or custom hardware may be used in place of, or incombination with, some or all of the software instructions that canimplement the processes of various embodiments. Thus, variouscombinations of hardware and software may be used instead of softwareonly.

The term “computer-readable medium” refers to any medium, a plurality ofthe same, or a combination of different media, that participate inproviding data (e.g., instructions, data structures) which may be readby a computer, a processor or a like device. Such a medium may take manyforms, including but not limited to, non-volatile media, volatile media,and transmission media. Non-volatile media include, for example, opticalor magnetic disks and other persistent memory. Volatile media includedynamic random access memory (DRAM), which typically constitutes themain memory. Transmission media include coaxial cables, copper wire andfiber optics, including the wires that comprise a system bus coupled tothe processor. Transmission media may include or convey acoustic waves,light waves and electromagnetic emissions, such as those generatedduring radio frequency (RF) and infrared (IR) data communications.Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, any other magneticmedium, a CD-ROM, DVD, any other optical medium, punch cards, papertape, any other physical medium with patterns of holes, a RAM, a PROM,an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, a carrierwave as described hereinafter, or any other medium from which a computercan read.

Various forms of computer readable media may be involved in carryingdata (e.g. sequences of instructions) to a processor. For example, datamay be (i) delivered from RAM to a processor; (ii) carried over awireless transmission medium; (iii) formatted and/or transmittedaccording to numerous formats, standards or protocols, such as Ethernet(or IEEE 802.3), SAP, ATP, Bluetooth™, and TCP/IP, TDMA, CDMA, and 3G;and/or (iv) encrypted to ensure privacy or prevent fraud in any of avariety of ways well known in the art.

Thus a description of a process is likewise a description of acomputer-readable medium storing a program for performing the process.The computer-readable medium can store (in any appropriate format) thoseprogram elements which are appropriate to perform the method.

Just as the description of various steps in a process does not indicatethat all the described steps arc required, embodiments of an apparatusinclude a computer/computing device operable to perform some (but notnecessarily all) of the described process.

Likewise, just as the description of various steps in a process does notindicate that all the described steps are required, embodiments of acomputer-readable medium storing a program or data structure include acomputer-readable medium storing a program that, when executed, cancause a processor to perform some (but not necessarily all) of thedescribed process.

Where databases are described, it will be understood by one of ordinaryskill in the art that (i) alternative database structures to thosedescribed may be readily employed, and (ii) other memory structuresbesides databases may be readily employed. Any illustrations ordescriptions of any sample databases presented herein are illustrativearrangements for stored representations of information. Any number ofother arrangements may be employed besides those suggested by, e.g.,tables illustrated in drawings or elsewhere. Similarly, any illustratedentries of the databases represent exemplary information only; one ofordinary skill in the art will understand that the number and content ofthe entries can be different from those described herein. Further,despite any depiction of the databases as tables, other formats(including relational databases, object-based models and/or distributeddatabases) could be used to store and manipulate the data typesdescribed herein. Likewise, object methods or behaviors of a databasecan be used to implement various processes, such as the describedherein. In addition, the databases may, in a known manner, be storedlocally or remotely from a device which accesses data in such adatabase.

Various embodiments can be configured to work in a network environmentincluding a computer that is in communication (e.g., via acommunications network) with one or more devices. The computer maycommunicate with the devices directly or indirectly, via any wired orwireless medium (e.g. the Internet, LAN, WAN or Ethernet, Token Ring, atelephone line, a cable line, a radio channel, an optical communicationsline, commercial on-line service providers, bulletin board systems, asatellite communications link, a combination of any of the above). Eachof the devices may themselves comprise computers or other computingdevices, such as those based on the Intel® Pentium® or Centrino™processor, that are adapted to communicate with the computer. Any numberand type of devices may be in communication with the computer.

In an embodiment, a server computer or centralized authority may not benecessary or desirable. For example, the present invention may, in anembodiment, be practiced on one or more devices without a centralauthority. In such an embodiment, any functions described herein asperformed by the server computer or data described as stored on theserver computer may instead be performed by or stored on one or moresuch devices.

Where a process is described, in an embodiment the process may operatewithout any user intervention. In another embodiment, the processincludes some human intervention (e.g., a step is performed by or withthe assistance of a human).

VI. Continuing Applications

The present disclosure provides, to one of ordinary skill in the art, anenabling description of several embodiments and/or inventions. Some ofthese embodiments and/or inventions may not be claimed in the presentapplication, but may nevertheless be claimed in one or more continuingapplications that claim the benefit of priority of the presentapplication.

Applicants intend to file additional applications to pursue patents forsubject matter that has been disclosed and enabled but not claimed inthe present application.

VII. 35 U.S.C. §112, Paragraph 6

In a claim, a limitation of the claim which includes the phrase “meansfor” or the phrase “step for” means that 35 U.S.C. §112, paragraph 6,applies to that limitation.

In a claim, a limitation of the claim which does not include the phrase“means for” or the phrase “step for” means that 35 U.S.C. §112,paragraph 6 does not apply to that limitation, regardless of whetherthat limitation recites a function without recitation of structure,material or acts for performing that function. For example, in a claim,the mere use of the phrase “step of” or the phrase “steps of” inreferring to one or more steps of the claim or of another claim does notmean that 35 U.S.C. §112, paragraph 6, applies to that step(s).

With respect to a means or a step for performing a specified function inaccordance with 35 U.S.C. §112, paragraph 6, the correspondingstructure, material or acts described in the specification, andequivalents thereof, may perform additional functions as well as thespecified function.

Computers, processors, computing devices and like products arestructures that can perform a wide variety of functions. Such productscan be operable to perform a specified function by executing one or moreprograms, such as a program stored in a memory device of that product orin a memory device which that product accesses. Unless expresslyspecified otherwise, such a program need not be based on any particularalgorithm, such as any particular algorithm that might be disclosed inthe present application. It is well known to one of ordinary skill inthe art that a specified function may be implemented via differentalgorithms, and any of a number of different algorithms would be a meredesign choice for carrying out the specified function.

Therefore, with respect to a means or a step for performing a specifiedfunction in accordance with 35 U.S.C. §112, paragraph 6, structurecorresponding to a specified function includes any product programmed toperform the specified function. Such structure includes programmedproducts which perform the function, regardless of whether such productis programmed with (i) a disclosed algorithm for performing thefunction, (ii) an algorithm that is similar to a disclosed algorithm, or(iii) a different algorithm for performing the function.

Where there is recited a means for performing a function hat is amethod, one structure for performing this method includes a computingdevice (e.g., a general purpose computer) that is programmed and/orconfigured with appropriate hardware to perform that function.

Also includes a computing device (e.g., a general purpose computer) thatis programmed and/or configured with appropriate hardware to performthat function via other algorithms as would be understood by one ofordinary skill in the art.

VIII. Disclaimer

Numerous references to a particular embodiment does not indicate adisclaimer or disavowal of additional, different embodiments, andsimilarly references to the description of embodiments which all includea particular feature does not indicate a disclaimer or disavowal ofembodiments which do not include that particular feature. A cleardisclaimer or disavowal in the present application shall be prefaced bythe phrase “does not include” or by the phrase “cannot perform”.

IX. Incorporation By Reference

Any patent, patent application or other document referred to herein isincorporated by reference into this patent application as part of thepresent disclosure, but only for purposes of written description inaccordance with 35 U.S.C. §112, paragraph 1 and enablement in accordancewith 35 U.S.C. §112, paragraph 1, and should in no way be used to limit,define, or otherwise construe any term of the present application wherethe present application, without such incorporation by reference, wouldnot have failed to provide an ascertainable meaning, but rather wouldhave allowed an ascertainable meaning for such term to be provided.Thus, the person of ordinary skill in the art need not have been in anyway limited by any embodiments provided in the reference

Any incorporation by reference does not, in and of itself, imply anyendorsement of, ratification of or acquiescence in any statements,opinions, arguments or characterizations contained in any incorporatedpatent, patent application or other document, unless explicitlyspecified otherwise in this patent application.

X. Prosecution History

In interpreting the present application (which includes the claims), oneof ordinary skill in the art shall refer to the prosecution history ofthe present application, but not to the prosecution history of any otherpatent or patent application, regardless of whether there are otherpatent applications that are considered related to the presentapplication, and regardless of whether there are other patentapplications that share a claim of priority with the presentapplication.

1. A method for processing a test order comprising: generating a testorder for an instrument in a trader's computer system; transmitting saidtest order from said trader's computer system to a trading andprocessing computer system; ranking said test order in said trading andprocessing computer system; entering said test order in an order bookfor said instrument in said trading and processing computer system;generating a response for said test order indicating at least whethersaid test order executed; and transmitting said response for said testorder from said trading and processing computer system to said trader'scomputer system.
 2. The method of claim 1 further comprising executingsaid test order.
 3. The method of claim 1 further comprising cancelingsaid test order without having executed said test order.
 4. The methodof claim 1 further comprising matching said test order to a real order,and, in response to said matching, executing said test order and notexecuting said real order.
 5. The method of claim 1 further comprisingmatching said test order to a second test order, and, in response tosaid matching, not executing said test order.
 6. The method of claim 1further comprising matching said test order to a second test order, and,in response to said matching, executing said test order.
 7. The methodof claim 1 further comprising determining that said test order exceeds arisk threshold.
 8. The method of claim 1 further comprising matching,executing, and transacting real orders in said trading and processingcomputer system.
 9. The method of claim 1 further comprising determiningin said trading and processing computer system that said test order is atest order.
 10. The method of claim 1 further comprising matching saidtest order to a second order; determining if execution criteriaassociated with said test order are met by said second order, and if so,then executing said test order, and if not, then not executing said testorder.
 11. The method of claim 1 wherein said response indicates thatsaid test order did not execute, and said response further includesinformation indicating time interval prior to entry of said test orderin said order book of another order in said order book that could havematched said test order.
 12. The method of claim 1 wherein said responseindicates that said test order did not execute, and said responsefurther includes information indicating price differential of price ofsaid test order in said order book to another order in said order bookwhile said test order was in said order book, said price differentialand said price of said test order indicating a price at which said testorder could have executed.
 13. The method of claim 1 wherein saidresponse indicates that said test order did not execute, and saidresponse further includes information indicating risk differential ofrisk of said test order in said order book to another order in saidorder book, said risk differential and said risk of said test orderindicating a risk at which said test order could have executed.